Monografias.com > Sin categoría
Descargar Imprimir Comentar Ver trabajos relacionados

Funciones y Programación Estructurada (página 2)




Enviado por Pablo Turmero



Partes: 1, 2

Monografias.com
Programación procedural
La programación procedural es un paradigma derivado de la programación estructurada en el cual un programa se divide en procedimientos, subrutinas, o funciones, los cuales simplemente consisten de una serie de instrucciones a ser ejecutadas.

Cualquier procedimiento puede ser llamado desde cualquier punto del programa, incluyendo otros procedimientos, o el mismo.

Monografias.com
Modularidad y alcance
Dentro de la programación procedural, las siguientes características son deseables:

Modularidad: Para cada procedimiento se especifica un conjunto de argumentos de entrada y valores de salida que le permiten comunicarse con otros procedimientos.

Alcance: Cada procedimiento cuenta con su propio espacio de variables, las cuales no pueden ser accedidas desde otros procedimientos, salvo mediante los mecanismos de paso de argumentos y retorno de valores.

Monografias.com
Ventajas de la programación procedural
Diseño descendente: La modularidad permite al programador plantear primero una solución al problema completo, para luego enfocarse en los detalles.

Cooperación: Múltiples programadores pueden trabajar en un programa complejo, cada uno desarrollando un módulo distinto.

Reusabilidad: Los procedimientos escritos para un programa pueden reutilizarse en otros programas que requieran la misma tarea.

Fácil depuración: Ya que cada procedimiento realiza una tarea especializada, es posible depurar cada procedimiento de manera individual.

Fácil mantenimiento: Un programa procedural que se escribe correctamente es fácil de entender, mantener y actualizar, incluso por otros programadores.

Monografias.com
Diseño descendente (top-down)
En programación, el diseño descendente consiste en dividir una tarea compleja en sub-tareas, y resolver cada sub-tarea de manera independiente hasta que cada paso pueda implementarse fácilmente.

Monografias.com
Ejemplo de diseño descendente
Considere el problema de elaborar un sistema de navegación para un robot autónomo.

El sistema puede dividirse en las siguientes etapas:

Capturar información sobre el entorno a través de sensores (cámaras, radares, micrófonos, etc).

Procesar la información del entorno para extraer rasgos relevantes (obstáculos, objetos en movimiento, corredores, etc.)

Tomar decisiones de acuerdo a los rasgos observados y el estado actual (acelerar, detener, girar, etc.)

Actualizar el estado del sistema de acuerdo a las decisiones tomadas (ajustar velocidad, dirección, etc.)

Cada una de estas etapas puede dividirse a su vez en otras sub-etapas.

Monografias.com
Alcance de variables y funciones
El alcance de una variable o función es el contexto desde el cual puede accederse a la misma.

En caso de ambigüedad (variables con mismo nombre pero distinto alcance), el lenguaje C/C++ elegirá la variable declarada en el contexto mas cercano.

Monografias.com
Ejemplo de alcance
int x = 1;

int f() {
return x;
}

int main() {
int x = 2;
{
int x = 3;
cout << x << endl;
}
cout << x << endl;
cout << f() << endl;
}

¿Qué imprime este programa?

Monografias.com
Ejercicios
De los dos programas siguientes, desarrolle el que le haya sido asignado, aplicando los conceptos de programación estructurada y diseño descendente.

El programa deberá cumplir con lo siguiente:
La función main() solo debe contener declaraciones de variables y llamadas a otras funciones.
El programa debe dividirse en funciones, cada una de las cuales debe realizar una tarea específica.
No debe haber variables globales. Las funciones compartirán información mediante los mecanismos de paso de argumentos y retorno de valores.

Monografias.com
Ejercicios
Elabore un programa para medir la velocidad promedio de cálculo aritmético de una persona. El programa deberá presentar al usuario una serie de operaciones (suma, resta, multiplicación y división) elegidas al azar. Para el caso de suma y resta, los operandos serán de máximo tres dígitos, para la multiplicación de máximo dos dígitos, y para la división de tres dígitos para el dividendo y uno para el divisor, y el resultado siempre debe ser entero.

Al iniciar, el programa pedirá al usuario el número de operaciones a realizar. Posteriormente mostrará la operación actual (e.g., “182 + 324 = ”) y esperará a que el usuario ingrese la respuesta. El programa llevará la cuenta del número de respuestas correctas, así como del tiempo de respuesta promedio (calculado solo para las respuestas correctas). Al final, el programa reportará estos resultados.

Subrutinas a considerar: imprimir pantalla o menú inicial, pedir datos iniciales al usuario, elegir operación, ejecutar prueba, reportar resultados.

Monografias.com
Ejercicios
Elabore un programa que implemente el juego de 3-en-raya (Gato) para dos jugadores humanos. El programa deberá inicialmente mostrar el tablero con las casillas numeradas del 1 al 9, y, de manera iterativa, pedir la casilla donde el siguiente jugador desea colocar su ficha, verificando que el movimiento sea válido. También deberá determinar en qué momento hay un ganador, o si llega a haber un empate.

Sugerencia: utilice nueve variables tipo char para representar cada una de las casillas del tablero. Cada casilla puede contener un espacio vacío, una ‘X’, o una ‘O’.

Subrutinas a considerar: solicitar jugador inicial (ficha X/O), dibujar tablero, solicitar siguiente movimiento, determinar ganador.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente 

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter